[공지] openNAMU 계정 이전 신청을 받고 있습니다.
권한 부족
편집 권한이 부족합니다. 로그인된 사용자(이)여야 합니다. 해당 문서의 ACL 탭을 확인하시기 바랍니다. 대신 편집 요청을 생성할 수 있습니다.
알림
현재 진행 중인 사용자 토론이 있습니다.
파일:상위 문서 아이콘.svg 상위 문서: the tree
1. 초기 설정
1.1. .env1.2. devConfig.json1.3. publicConfig.json1.4. serverConfig.json1.5. stringConfig.json
2. 실행 및 가입3. /admin/config4. /admin/developer5. 마무리

1. 초기 설정[편집]

  • .env를 제외하고 위키 엔진 내에서 수정이 가능하기 때문에 엄청 신중히 할 필요는 없긴 하다.
  • 그래도 stringConfig.json를 제외하고 미리 만들 것을 추천한다.
  • 엔진 내에 example 파일이 존재하기 때문에 최신 버전의 예시 파일을 참고할 것.
  • 다음 파일들을 만들 때는 example 파일의 이름을 변경하는 것보다 예시 파일을 복사하여 사용할 것을 권장한다.

1.1. .env[편집]

  • 엔진을 실행하기 위한 파일. 엔진 내부에서 수정할 수 없음.
PORT=3000 //위키를 열 포트
IP_HEADER=cf-connecting-ip //IP를 가져올 헤더. 클플 사용한다면 기본값으로 냅두고 클라우드플레어를 쓰지 않는다면 X-Forwarded-For.
SESSION_SECRET=secret

MONGODB_HOST=127.0.0.1 //MongoDB 호스트
MONGODB_PORT=27017 //MongoDB 포트
MONGODB_USER= //MongoDB 계정 이름
MONGODB_PASSWORD= //MongoDB 비밀번호
MONGODB_DATABASE=TheTree //MongoDB DB 이름

USE_REDIS=false //Redis 활성화 여부. 활성화 한다면 위키를 재부팅이나 업데이트하여도 세션이 유지된다.
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
REDIS_PASSWORD=

S3_ENDPOINT= // r2.dev 기준 (https://abcd1234.r2.cloudflarestorage.com)
S3_ACCESS_KEY_ID= //API 키 1
S3_SECRET_ACCESS_KEY= //API 키 2
S3_BUCKET_NAME=thetree //버킷 이름
S3_PUBLIC_HOST=https://cdn.example.com //위키의 서브 도메인을 연결할 것을 추천

MEILISEARCH_HOST=http://127.0.0.1:7700 //검색 서버 호스트
MEILISEARCH_KEY= //검색 서버를 실행하면서 나온 액세스 키
MEILISEARCH_INDEX=TheTreeDocuments //검색 정보를 저장할 이름 (다른 위키를 또 연다면 이름을 다르게 하여야 함.)

1.2. devConfig.json[편집]

  • config 권한으로 열람이나 수정할 수 없음. 실제로 config 페이지가 아닌 developer 페이지에 존재한다.
{
"minify": {
"css": true, //스킨 테스트위키라면 false
"js": true //스킨 테스트위키라면 false
},

"captcha": {
"enabled": false, //캡차 켜기 및 끄기
"type": "turnstile", //리캡차를 쓰고 싶다면 recaptcha 입력
"site_key": "", //캡차 사이트 키
"secret_key": "", //캡차 시크릿 키

"edit_captcha": {
"enabled": true,
"hours": 1,
"edit_count": 10 //캡차를 활성화할 빈도
}
},

"smtp_sender": "TestWiki <[email protected]>",
"smtp_settings": {
"host": "", //gmail 사용한다면 smtp.gmail.com
"port": 587,
"secure": false,
"auth": {
"user": "", //계정 ID
"pass": "" //계정 비밀번호
}
},

"github_api_token": "",
"check_update": true //엔진 업데이트 일정 주기마다 확인
}

1.3. publicConfig.json[편집]

  • 프론트엔트에 전송되며, 브라우저에서도 열람 가능한 json이다.
{
"site_name": "테스트위키", //위키 이름
"front_page": "FrontPage", //위키 대문
"theme_color": "#f85c64", //위키 대표색상. 테마 색상으로 사용됨
"base_url": "http://localhost:3000", //위키 도메인. the tree는 http 지원하지 않음.

"logo_text": "테스트위키", //로고 대신 글자를 넣는다면 이것을 사용. 로고와 같이 사용한다면 겹쳐서 보이기 때문에 사용할 수 없음.
"logo_image": "", //로고 이미지 상대 경로. 엔진에서 다른 URL은 허용하지 않음.

"skin.liberty.navbar_logo_padding": "0.4rem 0 0 0" //스킨 변수 추가. 다른 변수를 추가한다면 이 방식으로 추가하면 되나, json 형식이여야 함. (주의사항: 마지막 요소가 아니라면 반점(,)으로 구분하고 마지막은 반점을 넣지 않음.)
}

1.4. serverConfig.json[편집]

  • 프론트엔드로 전송되지 않는 정보.
{
"sitenotice": "", //위키 공지 추가
"default_skin": "liberty", //기본 스킨
"embed_image": "",

"namespaces": [], //이름 공간 추가

"withdraw_save_days": 0, //탈퇴 끄기: null, 0: 재가입 방지 기능 끄기, 1~: 재가입 방지용 단방향 암호화 해시 저장 (단위는 일 수. 단, 차단된 사용자의 경우 차단 기간동안 가입 불가. 탈퇴하면 차단 해제 불가.)

"grant_permissions": [
"delete_thread",
"admin",
"update_thread_status",
"nsacl",
"hide_thread_comment",
"grant",
"disable_two_factor_login",
"no_force_captcha",
"login_history",
"update_thread_document",
"update_thread_topic",
"aclgroup",
"hide_document_history_log",
"hide_revision",
"mark_troll_revision",
"batch_revert",
"api_access" //grant 순서 변경한다면 수정하면 됨.
],

"email_whitelist": [], //이메일 화이트리스트. (켠다면 ["gmail.com", "naver.com"]식으로 하면 됨.)
"use_email_verification": false, //이메일 인증 켜기, 끄기 (끈다면 이메일을 물어보긴 하나, 인증 단계가 패스됨.)

"external_link_icons": {
"파일:홈페이지 아이콘.svg": "" //다음 이미지 링크가 참부한 링크라면 외부 링크 표시하지 않음.
}
}

1.5. stringConfig.json[편집]

{
"copyright_text": "copyright agree wow",
"editagree_text": "문서 편집을 <strong>저장</strong>하면 당신은 기여한 내용을 <strong>라이선스</strong>으로 배포하고 기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다. 이 <strong>동의는 철회할 수 없습니다.</strong>",
"footer_html": "wow im footer",
"terms": "여기에 약관을 입력해주세요.",
"file_upload_template": "",
"withdraw_pledge": "본인은 탈퇴를 하면 기여했던 모든 내역이 <삭제된 사용자>로 표시됨을 동의하며 시스템에서 데이터가 삭제된 이후 기여자임을 증명할 수 없게 된다는 사실을 인지하고 있습니다.",
"not_found_html": "",
"head_html": ""
}

굳이 설명할 필요가 없어보이기 때문에 생략.

2. 실행 및 가입[편집]

위키 엔진 실행
pm2 start main.js

가입하는 방법은 따로 서술하지 않음.

3. /admin/config[편집]

  • 위키 설정할 수 있는 페이지. 제목은 Config라고 표시된다.
  • publicConfig.json, serverConfig.json, stringConfig.json 파일 수정
    • json 형식이 아니면 경고가 표시되기 때문에 안심해도 된다.
    • html 같이 "를 사용하는 경우 자동으로 \n가 추가되기 때문에 엔진 내부에서 수정하는 것이 더 편리하다.
  • 기능 비활성화
  • openNAMU 기여 이동
    • openNAMU DB를 마이그레이션 했다면 O:Gwangtori로 표시되어 있는 것을 가입한 사용자로 기여 목록을 이전할 수 있다.

4. /admin/developer[편집]

  • 개발자 설정.
  • 업데이트
    • 위키 엔진을 업데이트할 수 있다.
    • 현재 버전, 새 버전, 업데이트 확인 시각을 볼 수 있다.
    • 추가로 서브모듈 업데이트를 할 수 있고, 스킨 업데이트도 할 수 있다.
    • 해당 업데이트 기능은 모두 git 기능을 사용하기 때문에 git clone 형식으로 받아야 업데이트할 수 있다.
  • 도구
    • JS 다시 minify, CSS 다시 minify
      • 엔진 내부의 css, js를 다시 불러오는 기능.
    • openNAMU 데이터 마이그레이션
      • openNAMU의 문서와 역사를 모두 옮겨주며 파일도 모두 업로드해주기 때문에 openNAMU에서 옮기는 소유자라면 사용을 강력 추천한다.[1]
      • 위키 엔진 폴더에 'opennamu_data' 폴더를 만들고 SQLite 형식의 data.db와 'data' 폴더 안에 오픈나무의 사진이 있는 'images' 폴더를 놓으면 세팅이 끝난다.
      • 마이그레이션 작업하기 전 이름 공간 ACL[2]을 미리 세팅하고 진행할 것.
      • 엔진이 접근할 수 있는 권한인지 확인하고 해당 버튼을 누르면 된다. 누를 때마다 마이그레이션되기 때문에 주의할 것!
      • 마이그레이션 작업이 모두 끝나면 logs 파일이 생성된다. 생성되지 않았을 경우 중간에 에러가 발생하여 꺼진 것이다.
      • 성공적으로 끝났다면, 빨간 링크로 문서가 없는 것처럼 보이는데, '역링크/검색 문서 재생성'을 눌러 작업하여 해결한다.[3]
    • publicMin 안 디렉토리 비우기
    • cache 안 디렉토리 비우기
      • 스킨 업데이트를 하였다면 캐시를 비워 스킨 css와 js를 다시 불러온다.
    • blame 없는 기록 blame 생성
    • 역링크/검색 문서 재생성
      • openNAMU 데이터 마이그레이션이나 일부 문서의 역링크나 검색 정보가 누락되었을 경우 실행.
    • 역링크만 재생성
    • 검색 문서만 재생성
    • MeiliSearch 인덱스 재생성
      • MeiliSearch 인덱스의 이름을 변경하였거나 서버를 이전했다면 재생성한다.
  • Eval
    • 엔진을 업데이트하면서 DB 개정이나 엔진에 큰 수정을 해야할 때 사용하는 기능이다.
  • 설정
    • devConfig.json
      • 스킨의 css, js 캐시 여부
      • 캡차 설정
      • 메일 smtp 설정
  • 정적 파일
    • 정적 파일을 업로드하는 곳으로 스킨에 표시할 로고나 파비콘을 업로드하면 된다.
      • /favicon.ico: 업로드하면 자동으로 적용된다.
      • /logo.svg: publicConfig.json에 지정한 경로로 업로드하면 된다.

5. 마무리[편집]

모두 끝났으니 운영 문서의 ACL을 정리하고 즐거운 위키 생활하기 바란다.
[1] 단, 사용자 계정은 비밀번호 해시 이슈로 옮겨지지 않으며 따라서 사용자 문서도 옮겨주지 않는다.[2] 문서, 틀, 파일, 분류, 사용자[3] 마이그레이션 작업하면서 같이하면 서버에 무리가기 때문에 고의로 같이 진행하지 않는 것이다.



라이선스를 별도로 명시하지 않은 문서는 CC BY-SA 4.0에 따라 이용할 수 있습니다.
자세한 내용은 다올위키 라이선스 정책을 확인하시기 바랍니다.

기여하신 문서의 저작권은 각 기여자에게 있으며, 각 기여자는 기여하신 부분의 저작권을 갖습니다.

오픈 소스가 아닌 다올위키의 고유한 디자인을 무단으로 도용하는 것과, 운영 문서를 포함한 모든 문서를 라이선스를 지키지 않고 무단으로 가져가는 행동은 저작권 위반이며 법적 책임을 물 수 있습니다.